package com.ido.otaclient.nordic;

import android.net.Uri;

import com.ido.otaclient.base.BasePresenter;
import com.ido.otaclient.base.BaseView;
import com.ido.otaclient.module.Veneer;

import java.util.List;

/**
 * Copyright (c) 2019 深圳市爱都科技有限公司. All rights reserved.
 *
 * @Author: xyb
 * @CreateDate: 2020-02-28 09:33
 * @description
 */
public interface NordicContract {

    interface View extends BaseView<Presenter> {//UI

        /**
         * 显示加载框
         */
        void showLoading();

        /**
         * 隐藏弹框
         */
        void hideLoading();

        /**
         * 显示提示信息
         * @param message
         */
        void showMessage(String message);

        /**
         * 设置选择文件之后的图标
         */
        void setChooseDrawable();

        /**
         * 显示或隐藏选择文件名
         * @param isVisible
         */
        void showTvChooseFile(boolean isVisible);

        /**
         * 选择文件名
         * @param chooseFileName
         */
        void setTvChooseFileName(String chooseFileName);

        /**
         * 返回选择文件名称
         * @return
         */
        String getTvChooseFileName();

        /**
         * 获得选择文件版本信息
         * @return
         */
        String getChooseFileVersion();

        /**
         * 设置文件路径
         * @param path
         */
        void setFilePath(String path);

        /**
         * 获得文件的版本
         */
        void setFileVersion(String version);

        /**
         * 返回文件路径
         * @return
         */
        String getFilePath();

        /**
         * 返回上一个界面
         */
        void back();

        /**
         * 设置上传类型
         * @param updateType
         */
        void setUpdateType(String updateType);

        /**
         * 获得上传文件类型
         * @return
         */
        String getUpdateType();

        /**
         * 显示取消弹框
         */
        void showConfirmCancel();

        /**
         * 设置单板的集合
         * @param veneerList
         */
        void setVeneerList(List<Veneer> veneerList);

        /**
         * 获得单板列表集合
         * @return
         */
        List<Veneer> getVeneerList();

        /**
         * 选中Application
         */
        void checkApplication();

        /**
         * 选中bootloader
         */
        void checkBootloader();

        /**
         * 设置设备id
         * @param deviceId
         */
        void setDeviceId(String deviceId);

        /**
         * 获得设备id
         * @return
         */
        String getDeviceId();

        /**
         * 确认有失败的情况
         */
        void showConfirm(String failCount);
    }


    interface Presenter extends BasePresenter {//功能

        /**
         * 确认上传文件
         */
       void uploadAndConfirmFile(List<Veneer> veneerList);

        /**
         * 上传文件
         */
       void uploadFile(String url,String filePath,String fileVersion,String ip);

        /**
         * 显示选择的文件
         */
       void showChooseFile(Uri uri);

        /**
         * 确认上床文件
         * @param url
         * @param sizeStr
         * @param fileVersion
         * @param filePath
         * @param ip
         */
       void confirmUploadFile(String url, String sizeStr,String fileVersion,
                          String filePath,String ip);

        /**
         * 获取以配置的文件的信息
         */
       void initData();
    }

}
